home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / qnode150.zip / QNODE.DOC < prev    next >
Text File  |  1992-12-26  |  47KB  |  1,010 lines

  1.     ############
  2.   ################
  3.  ###            ###
  4.  ###            ###
  5. ###              ###  ##    ##  #####  ######  #######
  6. ###              ###  ###   ## ##   ## ##   ## ##
  7. ###              ###  ####  ## ##   ## ##   ## ##
  8. ###              ###  ## ## ## ##   ## ##   ## #####
  9. ###              ###  ##  #### ##   ## ##   ## ##
  10. ###           ## ###  ##   ### ##   ## ##   ## ##
  11. ###           ## ###  ##    ##  #####  ######  #######
  12. ###           ## ###
  13. ###           ######        ##  ##  ##     #####  ###
  14. ####           ####         ##  ## ###     ##    ## ##
  15.  ###            ####         ####   ##     ####  ## ##
  16.   ###################        ####   ##        ## ## ##
  17.     ############   ##         ##   #### ## ####   ### 
  18.  
  19.                              Table of Contents
  20.  
  21. Part 1 - QNode
  22.        1.1 - Introduction
  23.        1.2 - Program Usage
  24.        1.3 - Error Levels
  25.        1.4 - Point Nets
  26.        1.5 - Multiple Networks
  27.  
  28. Part 2 - QDiff
  29.        2.1 - Introduction
  30.        2.2 - Program Usage
  31.        2.3 - Error Levels
  32.  
  33. Part 3 - QIDX
  34.        3.1 - Introduction
  35.        3.2 - Program Usage
  36.        3.3 - Error Levels
  37.  
  38. Part 4 - Configuration File
  39.        4.1 - Introduction
  40.        4.2 - Configuration File Commands
  41.  
  42. Part 5 - Common Questions
  43.  
  44.                               Part 1 - QNode
  45.  
  46. 1.1 - Introduction
  47.  
  48.     QNode was originally designed to be a fast version 6 nodelist compiler 
  49.     which could handle my MNP modem properly, seeing as no other nodelist 
  50.     compiler was really able to do the job.
  51.  
  52.     When version 7 nodelists came out, and I found out just how slow the 
  53.     indexing system was, I determined that QNode really needed an update to 
  54.     handle the v7 nodelist.
  55.  
  56.     QNode is a free program, and although I don't refuse any money, no 
  57.     money is expected.  By the same token, you are NOT allowed to make any 
  58.     money through QNode.
  59.  
  60.     QNode is also a copyrighted program, and by that token, you are not 
  61.     allowed to distribute any modified, or incomplete copies of the QNode 
  62.     distribution archive.  (Re-Archiving is not considered modification (at 
  63.     least by me.))
  64.  
  65.     To get the latest version of QNode, simply request the magic name of
  66.     QNODE from 1:140/26.  This is probably going to net you a pre-release 
  67.     copy however.  The most recent release version will probably be 
  68.     available in the SDS-SOFTDIST area.
  69.  
  70.     Something that started with QNode 1.40 is that even numbered versions 
  71.     will be true release versions, while odd-numbered versions will be the
  72.     pre-release versions.
  73.  
  74. 1.2 - Program Usage
  75.  
  76.     QNode will use the file 'QNODE.CFG', or the first command line 
  77.     parameter as it's parameter file, and will always search and find the 
  78.     latest 'NODELIST.###' file (time-stamps are used, so end of year wrap 
  79.     isn't a problem.) and compile it into one of these sets of files:
  80.  
  81.        VERSION6        - NODELIST.DAT, NODELIST.IDX
  82.        VERSION7        - NODEX.DAT
  83.        VERSION7, INDEX - NODEX.NDX
  84.        USERLIST        - FIDOUSER.LST
  85.        USERLIST, INDEX - SYSOP.NDX
  86.  
  87.     You will only be allowed to create the version 7 index files and the
  88.     FIDOUSER.LST file as well as the indexes on an EMS system with lots
  89.     of EMS available.
  90.  
  91.     Once QNode has read it's configuration file(s), and found a nodelist to 
  92.     compile, it will start processing the nodelist.  While compiling, you 
  93.     will notice that a status line is kept on the screen showing the most 
  94.     recent Zone, Region, Net, and Hub.  Hubs will only be shown for nets 
  95.     which are being included in the final nodelist.  If a net is not to be 
  96.     included in the final nodelist, you will see the word 'EXCLUDE' after 
  97.     the line, and QNode will enter an extremely fast 'overdrive' mode to 
  98.     get to the next network.
  99.  
  100.     If you only use some zones from the nodelist, then QNode will stop 
  101.     compiling the nodelist the instant that it hits a zone higher than
  102.     the last one that you requested nodes be compiled from.
  103.  
  104. 1.3 - ERRORLEVELS
  105.  
  106.     The errorlevels which can be returned by QNODE are:
  107.  
  108.            0 = Nodelist compiled fine.
  109.            1 = No Nodelist found.
  110.            2 = Cannot open configuration file.
  111.            3 = Cannot open nodelist.
  112.            4 = Errors exist in the configuration file.
  113.            5 = Invalid binary nodelist.
  114.            6 = EMS allocation error.
  115.  
  116. 1.4 - POINTNETS
  117.  
  118.     Pointnets can be done in a couple of different ways, depending upon 
  119.     your system settings.  You can either create 'fake-net' point listings, 
  120.     or you can create a special 'point-control' file.
  121.  
  122.     In version 6 mode, you are only allowed to create a 'fake-net', but in 
  123.     version 7 mode, you can do either (or both for that matter.)
  124.  
  125.     A 'fake-net' is a dummy network which is not in the distribution 
  126.     nodelist, which lists your points as 'virtual' network addresses.  
  127.     These dummy network number start at 30000, and go up from there.  You 
  128.     should apply to your Zone Co-Ordinator for an official point-net 
  129.     number, but for testing purposes, you can pretty much choose a random 
  130.     number between 30000 and 32767.
  131.  
  132.     Each node within this fake-net is actually a point, where the node 
  133.     number from the fake-net is the point number of the node.  For example, 
  134.     if I used the fake-net number of 32000, then the points for 140/26.1, 
  135.     140/26.2, 140/26.3, ... would be listed in the nodelist as 32000/1, 
  136.     32000/2, 32000/3, ... .  It is the responsibility of your mail packer 
  137.     to handle these fake-net numbers.  (QMail, and Opus 1.70+ will handle 
  138.     fake-nets in this fashion.)
  139.  
  140.     A sample of a fake-net follows below:
  141.  
  142.     ---cut here---
  143.     Host,33000,The_North_Village,City,James_West,1-306-384-0836,2400,MNP
  144.     ,1,My_First_Point,City,Sysop_Name,1-306-555-1212,1200
  145.     ,2,My_Second_Point,City,Sysop_Name,1-306-555-1212,9600,HST,V32,V32b
  146.     ---cut here---
  147.  
  148.     This fake-net must be 'IMPORT'ed somewhere within the nodelist.  You 
  149.     can import it anywhere you like, but normally it should be imported 
  150.     after your own network, region, or zone.
  151.  
  152.     To import after your own network, you would use the configuration file 
  153.     command: 'IMPORT 1:140 POINT.LST'.  To import after your own region, 
  154.     you would use the command: 'IMPORT 1:17 POINT.LST'.  To import after 
  155.     your own zone, you would use the command: 'IMPORT 1: POINT.LST'.
  156.  
  157.     A 'point-control' file is one file which contains listings for all 
  158.     points that you will have access to.  It's fairly similar to the 'fake- 
  159.     net' file, but instead of having a dummy network for each node, the 
  160.     points are attached to the node itself.
  161.  
  162.     To use a point-control file, you should use the 'POINTS' command to 
  163.     include the file which you list all of your points in.  For example: 
  164.     'POINTS POINT.LST'.  In the point-control file, everything after the 
  165.     bosses node number is ignored, so you can use that as any sort of 
  166.     comment that you like.  (The actual information for the boss node is 
  167.     taken from the nodelist.)
  168.  
  169.     A sample of a point-control file follows:
  170.  
  171.     --- cut here ---
  172.     Boss,1:140/26,The_North_Village
  173.     ,1,AB_Data_Sales,City,Sysop,1-306-555-1212,1200
  174.     ,2,Another_Point,City,Somebody,1-306-555-1212,9600,HST,V32,V32b
  175.     Boss,1:140/200,Another_Boss_Node
  176.     ,1,His_First_Point,City,Sysop_Name,1-306-555-1212,1200
  177.     Pvt,2,His_Private_Point,City,Sysop,-Unpublished-,2400
  178.     --- cut here ---
  179.  
  180. 1.5 - MULTIPLE NETWORKS
  181.  
  182.     QNode also supports the compilation of many different input nodelists 
  183.     into one big output file.  This is used for the inclusion of other 
  184.     networks (like SIGnet for example.)
  185.  
  186.     The configuration file command which enables this is the 'NODELIST' 
  187.     command, which instructs QNode on which nodelists that it is supposed 
  188.     to compile.
  189.  
  190.     To compile a joint Fidonet, Signet system you would use the two 
  191.     commands: 'NODELIST NODELIST' and 'NODELIST SIGNODES'.
  192.  
  193.     WARNING:  If you use a 'NODELIST' command in your configuration file, 
  194.     then the default fidonet nodelist will NOT be included.  You must 
  195.     explicitly include the 'NODELIST NODELIST' statement if you still wish 
  196.     to include the fidonet nodelist.
  197.  
  198.                                 Part 2 - QDIFF
  199.  
  200. 2.1 - Introduction
  201.  
  202.     QDiff is a companion program to QNode, which applies NODEDIFF files to 
  203.     nodelists, and will generated an updated nodelist.  QDiff can apply an 
  204.     almost unlimited number of nodediffs simultaneously.  For example, if 
  205.     you have NODELIST.101, NODEDIFF.108, NODEDIFF.115, NODEDIFF.122, and 
  206.     NODEDIFF.129 after running QDiff, you will be left with NODELIST.129.
  207.     Note:  The actual limit will be determined by the number of file 
  208.     handles that QDiff is able to open simultaneously.  Since it doesn't 
  209.     bother to expand it's handle table, the true limit would be around a 
  210.     dozen nodediffs.
  211.  
  212. 2.2  - Program Usage
  213.  
  214.     QDiff has some pretty simple usage for most people:  Just run it 
  215.     without any parameters.  It's all automatic.  The only thing you have 
  216.     to do is make sure that the nodelist and nodediff files are in the 
  217.     directory that you are in when you run QDiff.
  218.  
  219.     QDiff first searches through your NODELIST files to locate the one with 
  220.     the most recent time stamp, and then it will go through your NODEDIFF 
  221.     files trying to find ones which are more recent.  If it does not find 
  222.     any, then it will search for any archived NODEDIFF files to see whether 
  223.     any of them exist.  (Current archivers which are recognized are: ARC, 
  224.     ZIP, and LHA, based upon the first letter of the extension.)
  225.  
  226.     You are NOT allowed to 'mix-and-match' archived and un-archived 
  227.     nodediffs.  You must supply one sort or the other to get a proper 
  228.     output file.
  229.  
  230.     If given an archived nodediff, QDiff will extract it immediately using 
  231.     one of the following archive programs:
  232.  
  233.        for NODEDIFF.A##:
  234.                PKUNPAK, PKXARC, ARCE, PAK
  235.        for NODEDIFF.Z##:
  236.                PKUNZIP, PAK
  237.        for NODEDIFF.L##:
  238.                LHA, LHARC
  239.  
  240.     QDiff requires LOTS of disk space while running.  It must create an 
  241.     entirely new nodelist on disk before it can delete the old one.  This 
  242.     new nodelist will be created in a file named 'QDIFF$.TMP', which will 
  243.     be renamed to the correct name if the nodelist is compiled 
  244.     successfully.
  245.  
  246.     To use QDiff with multiple networks, you must use some command line 
  247.     parameters.  For each network that you wish to compile, you should put 
  248.     the name of the nodelist, an exclamation point, and the name of the 
  249.     nodediff file.  You can do more than one network at a time, but it's 
  250.     suggested that you just do one network at once.  To cause QDiff to look 
  251.     for a SIGnet nodelist/diff combination for instance, you would use the 
  252.     command: 'QDIFF SIGNODES!SIGDIFF'
  253.  
  254.     Other parameters that are supported by QDiff are as follows:
  255.  
  256. /D  Deletes all NODEDIFF files when completed.  This will not delete 
  257.     archived nodediff files.  If a CRC error is detected during compile, 
  258.     the nodediff files will still be deleted.
  259. /N  Deletes the old nodelist.
  260. /Z  Instructs QDiff to place an EOF mark at the end of the new nodelist.
  261.     This is not required for either QDiff or QNode, but some utilities 
  262.     seem to expect it I guess.
  263. /P  Instructs QDiff to run some sort of command based upon the new nodelist 
  264.     or nodediff files.  This command can include the following percent 
  265.     directives:
  266.        %1 - Last 1 character of the julian date of the new nodelist.
  267.        %2 - Last 2 characters of the julian date of the new nodelist.
  268.        %3 - The full julian date of the new nodelist.
  269.        %D - The file name (without numbers) of the NODEDIFF file.
  270.        %N - The file name (without numbers) of the NODELIST file.
  271.     The %D and %N parameters both include a trailing period.
  272.     To include spaces in the command (as most commands require), you would 
  273.     have to encase the parameter in quotation marks.  Some sample commands 
  274.     follow:
  275.        /P:"pkpak -otc a nodelist.a%2 nodelist.%3"
  276.        /P:"pkzip -a nodelist.z%2 nodelist.%3"
  277.        /P:"lha a %nl%2 %n%3"
  278.     NOTE:  Within a batch file, you must use two percent signs.
  279.  
  280. /BINARY  Instructs QDiff to create a binary nodelist.
  281.     *************************************
  282.     *** WARNING: THIS IS IRREVERSIBLE ***
  283.     *************************************
  284.     If you decide to use this command, make sure that you have access to a 
  285.     real nodelist somewhere.  If your nodelist somehow gets corrupted, it 
  286.     will be completed unusable.
  287.  
  288.     The benefit of using the /BINARY switch is that the nodelist will take 
  289.     up approximately HALF the disk space on your local drive.  This binary 
  290.     nodelist is completely against FTSC, and therefore you should not make 
  291.     the binary nodelist available for download.  The only purpose for this 
  292.     command is for people who are running in extremely low disk space 
  293.     situations.
  294.  
  295.     Once you have used the /BINARY switch once, it is unnecessary to 
  296.     specify it again, since QDiff will automatically create a binary 
  297.     nodelist if it gets a binary nodelist as an input file.  Therefore if 
  298.     you wish to keep certain nodelists in ascii, and certain nodelists in 
  299.     binary, all that you need to do is manually convert the respective 
  300.     nodelists to binary, and then QDiff will automatically keep those 
  301.     nodelists in binary while leaving the other nodelists in ascii.
  302.  
  303.     De-Activated Stuff:
  304.        1: The Nodelist CRC can not be checked.
  305.        2: Lower-Case anything.
  306.        3: The EXPORT command is dead.
  307.        4: QDiff will take longer.  (QNode might actually be quicker.)
  308.  
  309. 2.3 - Error Levels
  310.  
  311.     The errorlevels which can be returned by QDIFF are:
  312.  
  313.        0 = NODEDIFF applied normally
  314.        1 = NODELIST does not require updating
  315.        2 = Cannot find nodediff
  316.        3 = Cannot find nodelist
  317.        4 = Cannot find extraction program
  318.        5 = NODEDIFF not found after running extraction program
  319.        6 = Extraction program reported an errorlevel other than 0
  320.        7 = Disk error during writing, probably disk full
  321.        8 = CRC error in new nodelist
  322.        9 = Invalid binary file version
  323.  
  324.                                  Part 3 - QIDX
  325.  
  326. 3.1 - Introduction
  327.  
  328.     QIDX is a simple program which was written to generate the nodelist 
  329.     indexes without having to compile the nodelist.  It is also used when 
  330.     somebody wishes to generate the FIDOUSER.LST file as well as the 
  331.     version 7 indexes.
  332.  
  333.     The ability to build the user index was just thrown in.
  334.  
  335. 3.2 - Program Usage
  336.  
  337.     To run QIDX, simply type 'QIDX' followed by the list of parameters for 
  338.     the indexes to be built.  These parameters are:
  339.  
  340. /N  Generates the node number index.  You may specify /N:filename to change 
  341.     the name of the index.  (This defaults to NODEX.NDX)
  342. /S  Generates the sysop index.  You may specify /S:filename to change the 
  343.     name of the index.  (This defaults to SYSOP.NDX)
  344.     
  345. /U  Generates the user file index.  You may specify /U:filename to change 
  346.     the name of the index.  (This defaults to USER.NDX)
  347.     NOTE:  USER.DAT must be in the current directory for /U to work.
  348.  
  349.     An additional parameter which is almost guaranteed to make the indexes 
  350.     unusable to everything also exists.  This parameter is:
  351. /B  Change block size (default 512).  This changes the size of the blocks 
  352.     within the index file.  No other values are known to work.
  353.  
  354.     If you use a large portion, or all, of the nodelist, then you may wish 
  355.     to have QIDX build the node number and sysop indexes separately.  If 
  356.     you build both at once, then QIDX must divide memory in half for each 
  357.     index.  If building only one, then it can use all of memory.
  358.  
  359.     To have QIDX compile a different nodelist data file than NODEX.DAT, you 
  360.     can simply specify the nodelist filename on the command line.
  361.  
  362.     To compile SIGX.DAT into SIGX.NDX and SIGSYSOP.NDX, you would use the 
  363.     command line:
  364.  
  365.     QIDX SIGX.DAT /N:SIGX.NDX /S:SIGSYSOP.NDX
  366.  
  367. 3.3 - Errorlevels
  368.  
  369.     0 = Everythings fine.
  370.     1 = Could not open either the nodelist, or the userlist data file.
  371.     2 = Bad parameter specified on command line.
  372.  
  373.                           Part 4 - Configuration File
  374.  
  375. 4.1 - Introduction
  376.  
  377.     The QNode configuration file is a free-format text file, which consists 
  378.     of a keyword followed by optional parameters.  The file is totally case 
  379.     in-sensitive, although some keywords may not be.  To place a comment 
  380.     within the file, preceded the comment by a semi-colon (;).
  381.     WARNING:  Do not place a comment on a password line.
  382.  
  383. 4.2 - Configuration File Commands
  384.  
  385.     NOTE:  Any parameter which starts with 'USES' may be enabled by 
  386.     preceding the statement with 'USES' and disabled by preceding the 
  387.     statement with '!USES'.
  388.  
  389.     *** STUFF ABOUT YOUR SYSTEM ***
  390. ADDR #:#/#.# {#:#/#.#} ; SUPERCEDES 'ZONE, NET, NODE'
  391.     This sets YOUR network node number.  Additional addresses may be 
  392.     specified, but the first address listed is the default. You are also 
  393.     allowed to place multiple ADDR lines in your configuration file, but 
  394.     each subsequent one will totally replace the previous ones. This can 
  395.     however be used to reduce typing by setting default zone/net numbers.
  396.  
  397.     WARNING: If you use multiple ADDR lines, be absolutely sure that the 
  398.     last ADDR line in the file is the real one, with all addresses, and the 
  399.     first address being your 'normal' address.
  400.  
  401. COUNTRY #
  402.     This sets your countries telephone direct dial code.  In Canada and the 
  403.     United States, this is '1'.
  404.  
  405. NODELIST filename{ #{ node-data{ sysop-data}}}
  406.     This is to be used to enable multiple, or non-standard nodelist 
  407.     generation.  If no nodelist lines are specified, it will default to: 
  408.     'NODELIST'.  You may have as many of these lines as you like.  The 
  409.     optional number specifies a 'zone override'. If this number is non-zero 
  410.     then the first zone will be taken to be the number you specify, instead 
  411.     of the zone listed.  Additional zones will be incremented by one. The 
  412.     zone override is only valid for the nodelist that it is listed for. An 
  413.     example for a fidonet + signet system follows:
  414.        NODELIST NODELIST
  415.        NODELIST SIGNODES
  416.     The node-data and sysop-data files are used in v7 mode to compile that 
  417.     nodelist to an entirely different set of data files.  If these options 
  418.     are never specified, they will default to: NODEX and SYSOP.
  419.  
  420.     WARNING:  Do not use file extensions on these commands.
  421.  
  422.     Whenever an entry is encountered with a file specified, the current 
  423.     file will be closed, and the new file(s) will be created.  The data- 
  424.     file overides are only supported in VERSION7 mode.
  425.  
  426.     Do *NOT* specify the same file names on a later line.  This will only 
  427.     erase the previous files.  To compile multiple entries into the same 
  428.     file, group all nodelists whose data should go into the same file 
  429.     together, and then specify the filename only for the first entry.
  430.  
  431.     As a weird example, suppose you want to have NODELIST and SIGNODES  
  432.     compiled together into NODEX.DAT, NODEX.NDX, and SYSOP.NDX, but you 
  433.     need SIGNODES to be compiled into SIGX.DAT, SIGX.NDX, and SIGSYSOP.NDX 
  434.     as well.  The proper usage would be:
  435.  
  436.        NODELIST NODELIST
  437.        NODELIST SIGNODES
  438.        NODELIST SIGNODES 0 SIGX SIGSYSOP
  439.  
  440. USES USERLIST ; SUPERCEDES 'USERLIST'
  441.     If you specify the VERSION7 and INDEX keywords, this requests that 
  442.     SYSOP.NDX be generated.  Otherwise the file 'FIDOUSER.LST' will be 
  443.     generated.  If you have insufficient memory to generate the entire file 
  444.     'FIDOUSER.LST', then it will be swapped to disk, and the slow process 
  445.     of userlist merging will commence.  To minimize the need for this, you 
  446.     may wish to reduce the memory consumption of QNode by reducing the 
  447.     BUFFERS keyword.
  448.  
  449. USES FIDOUSER [limit] ; SUPERCEDES 'USERLIST' IN VERSION6 MODE.
  450.     This requests that the file 'FIDOUSER.LST' be generated.  This file can 
  451.     only be generated if you either do not generate the version 7 index 
  452.     files, or if you have a LOT of EMS available.  (See the "USES EMS" 
  453.     parameter.)  The limit is the maximum amount of base-memory remaining 
  454.     before the userlist will be swapped to disk.  It defaults to 4096.
  455.  
  456. USES ALLUSERS ; SUPERCEDES 'ALLUSERS'
  457.     This requests that all user names be placed in FIDOUSER.LST, whether 
  458.     you have them in your nodelist or not.  This is normally used for the 
  459.     ONEZONE or REGULAR style of nodelists.  Since inter-zone mail is 
  460.     normally gate-routed, you do not require the actual node in your 
  461.     nodelist to send mail to people.
  462.  
  463. USES HUBS ; SUPERCEDES 'HUBS'
  464.     This asks for hub nodes in nets other than your own to be given mail 
  465.     command of all private nodes underneath them. Normally, mail command is 
  466.     given to the host, unless it is in your own net.
  467.  
  468. USES EMS [size]
  469.     This asks for EMS memory to be used for indexes and version 7 buffers. 
  470.     This will default to on, so the only use for this command is so that 
  471.     you can use '!USES EMS' to disable this setting.  The default for this 
  472.     command is to allocate 64, which effectively disables EMS indexes.
  473.  
  474.     If you wish to enable EMS indexing, set this value to some large 
  475.     number.  A good value would be: 1500, which allocates 1.5MB of EMS. 
  476.     This 1.5MB will be either given to one index, or split between two 
  477.     indexes.  In the EMS page frame is 4 pages of 16K.  Each index will 
  478.     take one page, and the version 7 buffers will get all remaining pages. 
  479.     NOTE:  EMS Indexing is noticably slower than using conventional memory.  
  480.     I would only suggest using this if you want to generate FIDOUSER.LST, 
  481.     or if you are compiling most of the nodelist.
  482.     
  483.     NOTE:  The index does NOT need to fit within it's EMS boundaries.  Index 
  484.     segments will be swapped to disk on an LRU algorithm if you fill the EMS 
  485.     boundary.
  486.     
  487.     NOTE:  As I've noticed running under MS-Windows, EMS requests can be 
  488.     denied for allocation even if there's still plenty of EMS remaining.  I 
  489.     can only determine that MS-Windows is trying to prevent applications from 
  490.     hogging the whole system.  Thus I had to lower my default allocation from 
  491.     2048 downto 1600 or so.  If you try larger amounts under MS-Windows, and 
  492.     possibly OS/2 as well, you may see a warning message telling you to lower 
  493.     your EMS allocation, or to remove it altogether.
  494.     
  495. USES DOUBLESWAP
  496.     This asks for EMS memory double-page swapping to be performed on the 
  497.     EMS indexes.  This command will DISABLE the placing of version 7 buffers 
  498.     within the EMS page frame.  Instead of each index taking only one page, 
  499.     when you use this option, each index will take two pages.  This option 
  500.     is to be used on systems which have an extremely slow EMS page-swap 
  501.     function.
  502.  
  503. ALLOCATE BUFFERS # ; SUPERCEDES 'BUFFERS'
  504.     This sets the node buffer size.  It can be anywhere from 1 to 511, and 
  505.     defaults to 511.  The only use I can see for this is to give yourself 
  506.     more memory for the userlist.  If you don't have enought memory for the 
  507.     buffers themselves, it will default to a lower number of nodes.  
  508.     BUFFERS 256 is frequently sufficient, and gives you some extra memory 
  509.     for the userlist.  Each buffer will take 128 bytes of memory in version 
  510.     7 mode, and 132 bytes of memory in version 6 mode (and 260 bytes of 
  511.     memory if you compile both.)
  512.  
  513. ALLOCATE TEXT #
  514.     This sets the memory allocation to be used for auxilliary text files 
  515.     used in the IMPORT, EXPORT, and FORMAT commands.  The default value for 
  516.     this is 32768.  The maximum value is either 65528, or half of remaining 
  517.     memory (whichever comes first.), but will always get at least 128 
  518.     bytes.  If you are generating FIDOUSER.LST, then this number will be 
  519.     locked at 128.
  520.  
  521.     WARNING:  If these are allocated at a totally inappropriate time, you 
  522.     may get an out of memory error (error code 203) during the compile.  If 
  523.     you get this error, then you should shrink the allocation.  (an 
  524.     allocation of 128 is guaranteed not to fail, since it's allocated from 
  525.     the stack, and not from the heap.)
  526.  
  527. KEEP FIRSTUSER
  528.     This tells QNode to keep the first user entry specificed during 
  529.     nodelist compile.  This was the default in QNode <1.41
  530.  
  531. KEEP LASTUSER
  532.     This tells QNode to keep the last copy of a user entry that it 
  533.     encounters during nodelist compile.  This is the default in QNode>=1.41
  534.  
  535. KEEP ALLUSERS ; SUPERCEDES 'DUPLICATE'
  536.     This allows duplicate entries in a VERSION7 sysop index.  OPUS doesn't 
  537.     do anything with the dupes however.
  538.  
  539. MAXBAUD #[|#] {[FLAG #[|#]] ...}
  540.     This sets the maximum baud rate which will be placed in the compiled 
  541.     nodelist.  Any entries above that value will be reduced to that value.  
  542.     Notice the optional second number after the pipe symbol.  This second 
  543.     number if the modem type to be used.  This sets the PREDIAL# to be used 
  544.     for Opus 1.70+, or the ModemTrans to be used for BinkleyTerm.
  545.  
  546.     The set of flags after the baud rate specify baud rate or dial prefix 
  547.     extensions.  Any node whose entries contains the flag listed will be 
  548.     changed to the specified baud rate (and optional modem type).  Unlike 
  549.     every other portion of QNode, the flags work on a LAST MATCH rule.  In 
  550.     case of multiple matches, the last one will have precedence.  You are 
  551.     allowed to have up to 20 flags specified.
  552.  
  553.     An example for a 2400 baud, MNP 5 modem is:
  554.        MAXBAUD 2400|1  HST 9600|0  MNP 9600|0  V42 9600|0
  555.     Where ModemType 0 is a standard MNP dial, and ModemType 1 disables the 
  556.     MNP for the dial.
  557.  
  558.     And example for an HST w/V32bis is:
  559.        MAXBAUD 9600|0  HST 9600|1  V32 9600|1  V32B 9600|2
  560.     Where ModemType 0 is a standard dial, ModemType 1 dials the older HST 
  561.     modems in HST mode, and ModemType 2 dials the newer V32bis modems with 
  562.     V32bis enabled.  This would enable Janus for higher speeds.  If you 
  563.     don't have Janus, you may wish to dial V32B in HST mode as well.
  564.  
  565.     *** NODELIST GENERATION COMMANDS ***
  566. COMPILE ONEZONE ; Supercedes 'ONEZONE'
  567.     Asks for only nodes in your zone(s). (ie: ZONE:*/*)
  568.  
  569. COMPILE REGULAR ; Supercedes 'REGULAR'
  570.     Asks for only your zone(s), plus hub nodes from other zones.  (ie: 
  571.     ZONE:*/* + *:*/0)
  572.  
  573. COMPILE ALLZONES ; Supercedes 'ALLZONES'
  574.     Asks for a complete nodelist (ie: *:*/*)
  575.  
  576. COMPILE NOZONES ; Supercedes 'NOZONES'
  577.     Asks for NO nodes whatsoever to be included
  578.  
  579. USES VERSION6 ; SUPERCEDES 'VERSION6'
  580.     Asks for a version 6 nodelist (DEFAULT)
  581.  
  582. USES VERSION7 ; SUPERCEDES 'VERSION7'
  583.     Asks for a version 7 nodelist
  584.  
  585. USES INDEX ; SUPERCEDES 'INDEX'
  586.     Asks for version 7 indexes to be created.  NOTE:  You may wish to use 
  587.     QIDX instead of this to generate indexes.  Either to give more memory 
  588.     for index creation, or to generate the FIDOUSER.LST file.
  589.  
  590.     WARNING: If you select VERSION7, USERLIST, and INDEX then only the 
  591.     version 7 sysop index will be generated.  To generate a FIDOUSER.LST 
  592.     file, you must not specify this command.  (Having LOTS of EMS will
  593.     allow you to generate FIDOUSER.LST in this situation, by using the
  594.     'USES FIDOUSER' keyword.)
  595.  
  596.     ANOTHER WARNING: When generating a VERSION7 data file, you MUST create 
  597.     indexes by one method or another.  You must either specify the USES 
  598.     INDEX, or use QIDX to build the indexes.
  599.  
  600.     *** NODELIST GENERATION MODIFIERS ***
  601. ADD {[nodeid] ...}
  602. DELETE {[nodeid] ...}
  603.     These two functions are used to change the list generated by the quick 
  604.     output list types.  The [nodeid] statements may be any of these style 
  605.     of numbers:
  606.  
  607.        ZONE:         Asks for the entire zone
  608.        ZONE:REGION   Asks for the entire region
  609.        ZONE:NET      Asks for the entire net
  610.        REGION        Asks for a region in your own zone
  611.        NET           Asks for a net in your own zone
  612.        -ZONE:        Asks for admin node for the zone
  613.        ZONE:-REGION  Asks for admin nodes from specified region
  614.  
  615.     These commands are processed in the order they are encountered.  You 
  616.     may have as many add and delete lines as you like, in any order.  In 
  617.     cases of multiple matches, the first applicable match will rule.
  618.  
  619.     If you reference nodes in any zone, then the zone admin nodes will be 
  620.     automatically added into the final output list.
  621.  
  622.     If you ask for the admin nodes for a specific region, then the 
  623.     independant nodes will be referenced as well.
  624.  
  625.     For example, to add only region 17, and all admin nodes for Zone 1, I 
  626.     use (with a second ADD line to add all other nets that I ever do 
  627.     netmail with.)
  628.  
  629.        NOZONES
  630.        ADD -1: -10 -11 -12 -13 -14 -15 -16 17 -18 -19
  631.  
  632. POINTS filename
  633.     This will include the specified file as the point-control file.  This 
  634.     keyword is only active while generating a version 7 nodelist.  See the 
  635.     section on pointnets for an example of this file.
  636.  
  637. INCLUDE filename
  638.     This will include the specified file into the QNODE.CFG parsing pass.  
  639.     I personally use this to include my dial and cost tables, which are 
  640.     used by every nodelist processor.
  641.  
  642. EXPORT nodeid filename
  643.     This will export, a raw portion of the nodelist into a specified file.  
  644.     Normally used to get a list of the nodes in your own net.  See 
  645.     ADD/DELETE for nodeid values.  This works for all nodes, whether they 
  646.     are in your nodelist or not.
  647.     This can also be used to send an abbreviated nodelist to someone else.
  648.     WARNING: This command is unavailable if you are using the binary 
  649.     nodelist format.
  650.  
  651. IMPORT nodeid filename
  652.     This will import a raw style portion of a nodelist into the generated 
  653.     nodelist once the value specified by nodeid has passed.  (Therefore if 
  654.     you import with your own net, you add nodes to the end of your net.)  
  655.     The nodeid values are described in ADD/DELETE.
  656.  
  657.     For example, to add the 'fake-net' 31000 to the end of your zone, you 
  658.     would use the command: "IMPORT 1: POINT.LST".  To add it to the end of 
  659.     your region, you would use the command: "IMPORT 17 POINT.LST".
  660.  
  661.     To add additional nodes to a network, you can use the import command to 
  662.     import after a network, with the import file not having any zone, 
  663.     region, or host commands in it.
  664.  
  665.     NOTE:  Any networks created through import files should be explicitly 
  666.     included in the output file using the 'ADD' keyword.  This is not 
  667.     always necessary, but there are occasions when it is.
  668.  
  669. FORMAT nodeid filename
  670.     This works just like the EXPORT command, except it makes a nice looking 
  671.     print-out, and it will only work with nodes which have been included in 
  672.     the output nodelist.
  673.  
  674.     *** BULK NODE MODIFICATIONS ***
  675.  
  676. DEFAULT FEE DOMESTIC fee
  677.     This sets the default fee for domestic calls (within your own country 
  678.     code)  This will normally default to '65535', which basically means 
  679.     that the fee will equal the cost.
  680.  
  681. DEFAULT FEE INTERNATIONAL fee
  682.     This sets the default fee for international calls (outside your own
  683.     country code)  This will normally default to '65535', which basically
  684.     means that the fee will equal the cost.
  685.  
  686. DEFAULT COST DOMESTIC cost [fee]
  687.     This sets the default cost for domestic calls (within your own country 
  688.     code)  This will normally default to 0.
  689.  
  690. DEFAULT COST INTERNATIONAL cost [fee]
  691.     This sets the default cost for international calls (outside your own 
  692.     country code)  This will normally default to 0.
  693.  
  694. DEFAULT DIAL DOMESTIC [predial][/postdial]
  695.     This sets the default dial substitution for domestic calls (within your 
  696.     own country code)  This dial substitution may contain a '/' in it to 
  697.     separate the prefix addition and the suffix addition.  (For example, an 
  698.     entry of '555-1212W/!' would place the entry '555-1212W' in front of 
  699.     the phone number, and would place an exclamation point at the end.  In 
  700.     most countries, this entry should be left blank.
  701.  
  702. DEFAULT DIAL INTERNATION [predial][/postdial]
  703.     This sets the default dial substitution for international calls 
  704.     (outside your own country code)  In Canada and the US, this is '011-' 
  705.     Other countries international direct dial codes will vary.  This 
  706.     follows the same rules as the default domestic dial string.
  707.  
  708. TYPE COST modem-type newcost [newfee]
  709.     This sets the default cost and/or fee for a modem of that particular 
  710.     modem-type.  The modem-type is a number from 0-255.  The fee is 
  711.     optional, and if not specified, will default to the same as the cost.  
  712.     This command will be applied after all other cost processing, and will 
  713.     only be applied if it is not a free call.  If a specific 'CALLCOST' 
  714.     statement is given, then the TYPE COST table will not be checked.
  715.  
  716. TYPE FEE modem-type newfee
  717.     This sets the default fee for a modem of that particular modem-type.  
  718.     This command will not be used if there is not an equivalent 'TYPE COST' 
  719.     statement for the same modem-type.  You may wish to use the additional 
  720.     parameter on the 'TYPE COST' line instead.  (This was only included to 
  721.     match the 'DEFAULT FEE' line.)
  722.  
  723. SCRIPT minbaud maxbaud cost fromdial todial
  724.     This is one form of the script command, which I invented to handle my 
  725.     2400 baud/MNP 5 modem.  In this case, every node which has a baud rate 
  726.     between (or equal to) the minbaud and the maxbaud, with a cost equal to 
  727.     the cost, will have the listed dial substitution done to it.  (If the 
  728.     start of the phone number doesn't match the fromdial, that node is not 
  729.     changed.)
  730.  
  731.     On my system, when I used VERSION6, I used:
  732.        SCRIPT 300 2400 0 1- "NOMNP1.SCR"   ; Local Calls
  733.        SCRIPT 300 2400 25 1- "NOMNP2.SCR"  ; No Areacode calls
  734.        SCRIPT 300 2400 50 1- "NOMNP3.SCR"  ; Long Distance calls
  735.  
  736.     VERSION7 nodelist users would probably want to use the ModemType 
  737.     settings.  (See MAXBAUD)
  738.  
  739.     *** DIAL/COST TABLES ***
  740.     NOTE:  If you define the 'DEFAULT COST' and 'DEFAULT DIAL' parameters, 
  741.     then these commands do not need to have any parameters after them.  (In 
  742.     fact they don't need any parameters even if you don't specify the 
  743.     lines.)  For those wondering, I split these off to support the 'DEFAULT 
  744.     FEE' parameter.  The others were added for completeness, as well as 
  745.     readability.
  746.  
  747.     In the dial table, there are two parameters after the dial keyword. the 
  748.     first is the modifications to local calls (ones within your own country 
  749.     code), and the second is the modifications to the international direct 
  750.     dial phone numbers (ones with any other country code.)  Each of these 
  751.     entries consists of what to put before the phone number, as well as 
  752.     what to put after the phone number.  To seperate the two, use a slash 
  753.     (/).  For no change to the phone number, use a slash by itself. You 
  754.     should use the keyword 'End' to terminate the dial and cost tables.
  755.  
  756.     The dial table will replace every phone number that starts with the 
  757.     first sequence with the second sequence.  This is for local or regional 
  758.     calls where you aren't allowed to dial the entire phone number.
  759.  
  760.     NOTE: Both the dial table and cost table are on a 'first match' system.  
  761.     Therefore, you should put the entries in in the order of longest to 
  762.     shortest.
  763.  
  764.     An example follows:
  765.  
  766.        DIAL    /    011-
  767.        ; Adds 011- to international calls, no change to domestic calls
  768.     
  769.        ; The following set up local calls from Saskatoon, SK
  770.          1-306-242- 242-
  771.          1-306-244- 244-
  772.          1-306-373- 373-
  773.          1-306-374- 374-
  774.          1-306-382- 382-
  775.          1-306-384- 384-
  776.          1-306-652- 652-
  777.          1-306-654- 654-
  778.          1-306-664- 664-
  779.          1-306-665- 665-
  780.          1-306-931- 931-
  781.          1-306-933- 933-
  782.          1-306-934- 934-
  783.          1-306-955- 955-
  784.          1-306-966- 966-
  785.          1-306-978- 978-
  786.          1-306-329- 329-
  787.          1-306- 1-          ;area code strip for Saskatchewan calls
  788.        END
  789.     
  790.     The COST statement at the head of the table can take two arguments, 
  791.     which are the default costs in pennies to apply to domestic and 
  792.     international calls, respectively.
  793.  
  794.     Each entry in the cost table consists of a partial phone number 
  795.     followed by a cost in pennies for sending a message to any node whose 
  796.     phone number begins with that string.  As with the dialing table, the 
  797.     first matching entry is the one that is used.  The cost table is used 
  798.     before the dial table is used, so you should always use the fully 
  799.     expanded phone numbers, instead of the simplified phone numbers which 
  800.     the dial table would generate
  801.  
  802.     You may append an additional entry to the end of each line, being the 
  803.     fee charged to the user for sending messages to nodes within that phone 
  804.     prefix.
  805.  
  806.     An example follows:
  807.  
  808.        COST 50 250
  809.        ; This gives a default cost of 50 cents to domestic calls, and
  810.        ; $2.50 to international calls.
  811.  
  812.        ; The following numbers are free from Saskatoon, SK
  813.          1-306-242- 00
  814.          1-306-244- 00
  815.          1-306-373- 00
  816.          1-306-374- 00
  817.          1-306-382- 00
  818.          1-306-384- 00
  819.          1-306-652- 00
  820.          1-306-654- 00
  821.          1-306-664- 00
  822.          1-306-665- 00
  823.          1-306-931- 00
  824.          1-306-933- 00
  825.          1-306-934- 00
  826.          1-306-955- 00
  827.          1-306-966- 00
  828.          1-306-978- 00
  829.          1-306-329- 00
  830.          1-306-585- 25 22 ; One of Reginas prefixes (short distance)
  831.          1-306- 25 ; short distance calls, cheaper rates
  832.          1-800- 00
  833.          1-900- 50
  834.        END
  835.  
  836.     As a memory saving gesture, The 'DIALCOST' table has also been added.  
  837.     It is a combination of the DIAL and COST tables.  (However you may 
  838.     still use the DIAL and COST tables, and even use them in conjunction 
  839.     with the DIALCOST table.  If you use duplicate tables, then the 
  840.     DIALCOST table will be applied first, then the DIAL or COST table.  The 
  841.     DIAL or COST table will be checked, even if there was a matching entry 
  842.     in the DIALCOST table.
  843.  
  844.     The DIALCOST table has a header with four values, these values being:  
  845.     The default domestic cost for messages, the default international cost 
  846.     for messages, the default domestic dial substitution, and the default 
  847.     international dial substitution.
  848.  
  849.     Every entry in the DIALCOST table has 3 mandatory parameters, plus a 
  850.     fourth optional parameter.  The parameters, in order are: The partial 
  851.     phone number for the dial substitution and cost to take effect on, the 
  852.     replacement dial string to be used, the cost of the message to be sent, 
  853.     and the fourth optional parameter is the fee charged to the user for a 
  854.     message to be sent to that node.
  855.  
  856.     An example follows:
  857.  
  858.        DIALCOST 50 250 / 011-
  859.     
  860.        ; The following set up local calls from Saskatoon, SK
  861.          1-306-242-   242- 00
  862.          1-306-244-   244- 00
  863.          1-306-373-   373- 00
  864.          1-306-374-   374- 00
  865.          1-306-382-   382- 00
  866.          1-306-384-   384- 00
  867.          1-306-652-   652- 00
  868.          1-306-654-   654- 00
  869.          1-306-664-   664- 00
  870.          1-306-665-   665- 00
  871.          1-306-931-   931- 00
  872.          1-306-933-   933- 00
  873.          1-306-934-   934- 00
  874.          1-306-955-   955- 00
  875.          1-306-966-   966- 00
  876.          1-306-978-   978- 00
  877.          1-306-329-   329- 00
  878.          1-306-585- 1-585- 25 22 ; Regina, known cost call.
  879.          1-306-     1-     25
  880.          1-800-     1-800- 00
  881.          1-900-     1-900- 50
  882.        END
  883.  
  884.     *** INDIVIDUAL NODE MODIFICATIONS ***
  885.  
  886. BAUD [zone:][net/]node baudrate[|modemtype]
  887.     Sets the specified nodes baudrate to whatever you specify.  The modem 
  888.     type flag can be set at the same time, by separating it from the 
  889.     baudrate with a pipe symbol.
  890.  
  891.        BAUD 1:140/26 9600|0
  892.  
  893. FLAGS [zone:][net/]node flaglist
  894.     Adds the specified flags to the node. (Normally 'CM')
  895.  
  896.        FLAGS 140/26 CM
  897.  
  898. PHONE [zone:][net/]node phonenumber
  899.     Sets the specified nodes phone number (Unless the node number is 
  900.     unlisted, you may want to see if you can use the SCRIPT command 
  901.     instead, which doesn't have to be changed if the person ever changes 
  902.     their phone number.)
  903.  
  904.        PHONE 1:140/26 1-306-384-0836
  905.  
  906. CALLCOST [zone:][net/]node cost [fee]
  907.     Sets the charge to the user for a message to be sent to the listed 
  908.     node.  WARNING: Using this on nodes may cause the nodes to be 
  909.     unacceptable in the bulk SCRIPT statements. If the node has more than 
  910.     one node number, then you should probably use a specific COST statement.
  911.  
  912.     The first item 'cost' is used for nodelist processing, the second 
  913.     entry, or 'fee' is charged to the user for a message to be sent to that 
  914.     node.  If you do not list the fee, then it will default to the same 
  915.     value as the cost.
  916.  
  917.        CALLCOST 26 1
  918.  
  919. PASSWORD [zone:][net/]node password
  920.     Sets the specified nodes password. The password can be absolutely 
  921.     anything.  Leading and trailing spaces and tabs will be removed, but 
  922.     everything from that point on is part of the password.  Therefore, do 
  923.     NOT place a comment on this line.
  924.  
  925.        PASSWORD 1:140/26 PASSWORD
  926.  
  927. SCRIPT [zone:]net/node fromdial todial
  928.     This is the second form of the script command.  Please note that the 
  929.     net number IS required, even if it's your own net. (I use the '/' to 
  930.     determine the difference between the two script lines.)
  931.  
  932.        SCRIPT 140/88 1- "VORTEX.SCR"  ; Needs a special script.
  933.  
  934.                            Part 5 - Common Questions
  935.  
  936.     Well okay, I made some of 'em up, but you get the idea.
  937.  
  938. Q:  I have to type an awful lot of the same zone number in a multiple 
  939.     nodelist situation.  How can I reduce all these zone numbers?
  940. A:  Easy.  Just put a bunch of ADDR lines all through the configuration 
  941.     file.  The first number specified on an ADDR line will set the default 
  942.     zone and net for you.  When doing this however, it is important to make 
  943.     sure that you set the ADDR line correctly at the end of the file.
  944.  
  945. Q:  In V7 mode, can I still generate the FIDOUSER.LST file?
  946. A:  You bet.  You must specify the VERSION7 and USERLIST keywords in
  947.     your config file, but you can't specify the INDEX keyword.  You must
  948.     use QIDX to build the indexes.  If you have lots of EMS, look at USES 
  949.     EMS.
  950.  
  951. Q:  In V7 mode, how can I configure my 2400 baud MNP modem to work with the
  952.     modem type byte?
  953. A:  A good MAXBAUD line that you could use would be:
  954.     MAXBAUD 2400 MNP 9600|1 HST 9600|1 V32 9600|1 V32B 9600|1
  955.     Where modem type 0 is a standard non-MNP dial command, and modem type
  956.     1 is an MNP dial command.  (Note that the baud rate is locked at 9600
  957.     for MNP connects.)
  958.  
  959. Q:  In V7 mode, how can I configure my HST-DS to work with older HST's?
  960. A:  A good MAXBAUD line that you could use would be:
  961.     MAXBAUD 9600 MNP 9600|1 HST 9600|1 V32 9600|1 V32B 9600|2
  962.     Where modem type 0 is a no-correction dial command, modem type 1 is
  963.     a simple MNP or older HST type dial command (you may wish to split those
  964.     two into separate dial strings as well.), and modem type 2 is the
  965.     super-enhanced dial command for other V32bis modems.
  966.  
  967. Q:  When generating a FIDOUSER.LST file, it runs out of memory, and says
  968.     extending on disk.  It then takes a lot longer to compile.  Is there
  969.     any way to speed it up?
  970. A:  Sorta.  You can either reduce the memory overhead of the nodelist buffers
  971.     (using the BUFFERS keyword.), or you can use a smaller section of the
  972.     nodelist, or both.
  973.  
  974. Q:  In V7 mode, when generating the indexes, after a certain point, the drive
  975.     light starts to flash a lot more rapidly than previously, what's going on
  976.     and can I speed it up?
  977. A:  The V7 index files have just hit the memory limit, and they have to be
  978.     swapped to disk now.  You can reduce the memory overhead of the nodelist
  979.     buffers (using the BUFFERS keyword.), you can use a smaller section of the
  980.     nodelist, or you can use the QIDX program to build the indexes instead.
  981.     (QIDX can still swap to disk, but it will have more memory than QNODE.)
  982.  
  983. Q:  How can I send somebody part of the nodelist, instead of the whole thing?
  984. A:  You can use some constructive QNode and batch file techniques to export
  985.     the proper things.  I'd suggest making a sub-directory to contain the
  986.     temporary files, deleting all files in the sub-directory before compiling
  987.     the nodelist with QNode (use the batch command
  988.     "FOR %F IN (DIR\*.*) DO DEL %F", which doesn't ask for Y/N)
  989.     And then run QNode with the following type of export directives:
  990.        EXPORT -1: ADMIN.1
  991.        EXPORT 1:-17 ADMIN.17
  992.        EXPORT 1:140 NET.140
  993.     NOTE: You may wish to export the entire region, or even the entire zone
  994.     instead.  Just remember that you REQUIRE zone and region administration
  995.     nodes in any abbreviated nodelist.
  996.     And then execute this command after QNode: "COPY/A DIR\*.* SMALLNDE.001"
  997.     Your batch file would look like this then:
  998.        ---cut here---
  999.        FOR %%F IN (TEMP\*.*) DO DEL %%F
  1000.        QNODE
  1001.        COPY/A TEMP\*.* SMALLNDE.001
  1002.        ---cut here---
  1003.  
  1004. Q:  How can I make QNode put zone numbers for all zones in the FIDOUSER.LST 
  1005.     file?
  1006. A:  Easy.  Just change your final 'ADDR' line to contain a dummy address as 
  1007.     the first address, followed by all of your regular addresses.  Any 
  1008.     nodes with a zone number other the the zone of the first address will 
  1009.     have their zone number placed in the FIDOUSER.LST file.
  1010.